/**
 * Created by luomingzhong on 17/3/18.
 * 栈可以用来判断一个算术表达式中的括号是否匹配。编写一个函数,该函数接受一个算术表达式作为参数，，返回括号缺失的位置。
 * 如下面是一个括号不匹配的算术表达式的例子： 2.3 + 23 / 12 + ( 3.14159 x 0.24
 */
/**
 *
 * @param exprees 算术表达式
 * @returns {*} 返回括号缺失的位置
 */
function match(exprees, stack) {
    let tempArray = exprees.split('');
    let length = tempArray.length;
    let letBracket = "([{<";
    let rightBracket = ")]}>";
    let flag = 0;
    for (let i = 0; i < length; i++) {
        //左括号入栈
        if (letBracket.indexOf(tempArray[i]) > -1) {
            stack.push(tempArray[i]);
        }
        //是否为右括号
        else if (rightBracket.indexOf(tempArray[i]) > -1) {
            //匹配就删除
            if (stack.length() &&
                letBracket.indexOf(stack.peek()) === rightBracket.indexOf(tempArray[i]))
                stack.pop();
            else {
                flag = i;
                break;
            }
        }


    }
    if (stack.length()) {
        return {
            result: false,
            position: flag
        };
    }
    return {result: true};
}
module.exports = match;